home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / asmexam.arc / ARITH.ASM next >
Encoding:
Assembly Source File  |  1984-08-09  |  1.5 KB  |  79 lines

  1.     PAGE 55,132
  2. CODE    SEGMENT  PARA
  3.     ASSUME CS:CODE,DS:CODE
  4.  
  5. W1      DW  4
  6. W2      DW  6
  7. B1      DB  6
  8. B2      DB  2
  9. V1      DD  3
  10. V2      DD  5
  11.  
  12.     ORG 100H
  13.  
  14. START:
  15.     MOV BX,1
  16.     ADD BX,W1   ; BX <-- BX + [W1]
  17.     SUB BX,W2   ; BX <-- BX - [W2]
  18.     ADC BH,B1   ; BH <-- BH + [B1] + CARRY
  19.     SBB B2,BL   ; [B2] <-- [B2] - BL - CARRY
  20.     NEG B2      ; [B2] <-- - [B2]
  21.     INC B1      ; [B1] <-- [B1] + 1
  22.     DEC AX      ; AX <-- AX - 1
  23.  
  24.     ADD DI,200  ; DI <-- DI + 200
  25.     SUB SP,100  ; SP <-- SP - 100
  26.     ADC CX,10   ; CX <-- CX + 10 + CARRY
  27.     SBB W1,20   ; [W1] <-- [W1] - 20 - CARRY
  28.     CMP BX,AX   ; SET FLAGS FOR BX-AX
  29.     CMP SI,500  ; SET FLAGS FOR SI - 500
  30.  
  31.  
  32.  
  33.  
  34.     MOV B1,04
  35.     MOV AL,0FFH
  36.     MUL B1      ; AX <-- AL * [B1]    UNSIGNED
  37.  
  38.     MOV BX,0FFFDH
  39.     MOV AX,BX
  40.     IMUL BX     ; DX:AX <-- AX * BX   SIGNED
  41.  
  42.     MOV W1,05
  43.     MOV DX,04
  44.     MOV AX,0FFFBH
  45.     DIV W1      ; AX <-- DX:AX/[W1]   UNSIGNED
  46.  
  47.     MOV AX,8000H
  48.     MOV CH,0F0H
  49.     IDIV CH     ; AL <-- AX/CH        SIGNED
  50.  
  51.     MOV AL,0E0H
  52.     CBW         ; SIGN EXTEND AL   --> AX
  53.     CWD         ; SIGN EXTEND AX   --> DX:AX
  54.  
  55. ; ----------- MULTIPLE PRECISION ADD -----------------
  56.  
  57.     MOV AX,0EFF1H        ; LOW ORDER WORD
  58.     ADD AX,100FH
  59.     MOV BX,AX
  60.     MOV AX,21FEH         ; HIGH ORDER WORD
  61.     ADC AX,3ECAH         ; 21FE EFF1 +3ECA 100F = 50C9 0000
  62.  
  63. ; ----------- MULTIPLE PRECISION SUB -----------------
  64.  
  65.     MOV AX,0FFFFH        ; LOW ORDER WORD
  66.     SUB AX,0002H
  67.     MOV BX,AX
  68.     MOV AX,0FFFFH         ; HIGH ORDER WORD
  69.     SBB AX,0000H          ; FFFF FFFF - 0000 0002 = FFFF FFFD
  70.  
  71.  
  72. CODE    ENDS
  73.     END START
  74.  
  75.  
  76.  
  77.  
  78.  
  79.